#pragma once

namespace krryn{
namespace system{
	enum keys_e{
		key_0,
		key_1,
		key_2,
		key_3,
		key_4,
		key_5,
		key_6,
		key_7,
		key_8,
		key_9,
		key_a,
		key_b,
		key_backslash,
		key_backspace,
		key_c,
		key_caps_lock,
		key_comma,
		key_d,
		key_delete,
		key_down,
		key_e,
		key_end,
		key_equals,
		key_escape,
		key_f,
		key_f1,
		key_f10,
		key_f11,
		key_f12,
		key_f2,
		key_f3,
		key_f4,
		key_f5,
		key_f6,
		key_f7,
		key_f8,
		key_f9,
		key_g,
		key_grave,
		key_h,
		key_home,
		key_i,
		key_insert,
		key_j,
		key_k,
		key_l,
		key_left,
		key_left_alt,
		key_left_bracket,
		key_left_control,
		key_left_shift,
		key_m,
		key_minus,
		key_n,
		key_num_0,
		key_num_1,
		key_num_2,
		key_num_3,
		key_num_4,
		key_num_5,
		key_num_6,
		key_num_7,
		key_num_8,
		key_num_9,
		key_num_add,
		key_num_decimal,
		key_num_divide,
		key_num_enter,
		key_num_multiply,
		key_num_subtract,
		key_num_lock,
		key_o,
		key_p,
		key_page_down,
		key_page_up,
		key_pause,
		key_period,
		key_print_screen,
		key_q,
		key_r,
		key_return,
		key_right,
		key_right_alt,
		key_right_bracket,
		key_right_control,
		key_right_shift,
		key_s,
		key_scroll_lock,
		key_semicolon,
		key_slash,
		key_sleep,
		key_space,
		key_t,
		key_tab,
		key_u,
		key_up,
		key_v,
		key_w,
		key_x,
		key_y,
		key_z,
		// keys_count is not an actual key, it
		// is number of keys we have defined
		keys_count
	};

	enum key_state_e{
		key_state_up,
		key_state_down
	};

	enum mouse_state_e{
		mouse_state_none,
		mouse_state_left_click,
		mouse_state_right_click
	};
}
}
